﻿// JScript 文件

var xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
/*
异步执行存储过程
*/
function AjaxExec(procname)
{
    xmlhttp.open("POST","../../../Server/DataServer.aspx?Name="+encodeURIComponent(procname),false);
    xmlhttp.send();
    return xmlhttp.responseText;
}

/*
如果为空或null返回一个指定值
*/
function IsNull(value,returnvalue)
{
    if(value=='' || value==null)
    {
        return returnvalue;
    } 
    else
    {
        return value;
    }  
}

function ForDight(Dight,How)
{ 
    var Dight = Math.round (Dight*Math.pow(10,How))/Math.pow(10,How); 
    if(Dight*1<1)
    {
        Dight=1;
    }  
    return Dight; 
} 

/*
取小数位数
*/
Number.prototype.toFixed = function(d)
{
  var s=this+"";if(!d)d=0;
  if(s.indexOf(".")==-1)s+=".";s+=new Array(d+1).join("0");
  if (new RegExp("^(-|\\+)?(\\d+(\\.\\d{0,"+ (d+1) +"})?)\\d*$").test(s))
  {
      var s="0"+ RegExp.$2, pm=RegExp.$1, a=RegExp.$3.length, b=true;
      if (a==d+2){a=s.match(/\d/g); if (parseInt(a[a.length-1])>4)
      {
          for(var i=a.length-2; i>=0; i--) {a[i] = parseInt(a[i])+1;
          if(a[i]==10){a[i]=0; b=i!=1;} else break;}
      }
      s=a.join("").replace(new RegExp("(\\d+)(\\d{"+d+"})\\d$"),"$1.$2");
  }if(b)s=s.substr(1);return (pm+s).replace(/\.$/, "");} return this+"";
}

/*
取大数
如3.1 取值结果为4
*/
function toMax(d)
{
    var item=d.split('.');
    var result=0;
    if(item[1]*1>0)
    {
        result=item[0]*1+1;
    }
    else
    {
        result=d*1;
    }  
    return result;
}

//去空格
String.prototype.trim = function()  
{  
      //   用正则表达式将前后空格  
      //   用空字符串替代。  
      return   this.replace(/(^\s*)|(\s*$)/g,   "");  
}

/*
随机数函数
*/
function GetRandomNum(Min,Max)
{   
        var Range = Max - Min;   
        var Rand = Math.random();   
        return(Min + Math.round(Rand * Range)); 
} 

/*
将文本类型转换为布尔类型
*/
String.prototype.ConvertToBool = function()
{
    if(this.toUpperCase()=='TRUE')
    {
        return true;
    }
    else
    {
        return false;
    }   
}

//判断输入是否为有效数字
function IsNumber(box)
{
   if(box.value.trim() !="")
   {
       if(isNaN(box.value)==true)
       {
            alert("请输入有效数字！");
            box.select();
            return false;
       }
      else
      { 
        return true; 
      }
  }
}


//校验是否允许为整数:IsInteger(true:允许；false:不允许)
function IsInteger(strNumber)
{
	return (strNumber.indexOf(".") == -1) && IsNumber(strNumber);
}

//日期校验:标准2005-12-14或者2005-12-14 12:45:30
function IsDateTime(strDate)
{
	var reg1 = /^(\d{1,4})-(\d{1,2})-(\d{1,2})$/;
    var reg2 = /^(\d{1,4})-(\d{1,2})-(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/;
    var r = strDate.value.trim().match(reg1);
    var d;
    if(r!=null)
    {
        d= new Date(r[1], --r[2],r[3]);
        if(d.getFullYear()!=r[1] || d.getMonth()!=r[2] || d.getDate()!=r[3])
        alert('请输入 yyyy-mm-dd 的日期格式！');
        strDate.select();
        return false;
    }
    else
    {
        r = strDate.value.trim().match(reg2);
        if(r==null)
        return false;
        d= new Date(r[1], --r[2],r[3],r[4],r[5],r[6]);
        if(d.getFullYear()!=r[1] || d.getMonth()!=r[2] || d.getDate()!=r[3] || d.getHours()!=r[4] || d.getMinutes()!=r[5] || d.getSeconds()!=r[6])
        alert('请输入 yyyy-mm-dd hh:mm:ss的日期格式！');
        strDate.select();
        return false;
    }
    return true;
}
function DateTime(strDate)
{
	var reg1 = /^(\d{1,4})-(\d{1,2})-(\d{1,2})$/;
    var reg2 = /^(\d{1,4})-(\d{1,2})-(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/;
    var r = strDate.value.trim().match(reg1);
    var d;
    if(r!=null)
    {
        d= new Date(r[1], --r[2],r[3]);
        if(d.getFullYear()!=r[1] || d.getMonth()!=r[2] || d.getDate()!=r[3])
        alert('请输入 yyyy-mm-dd 的日期格式！');
        strDate.select();
        return false;
    }
    else
    {
        r = strDate.value.trim().match(reg2);
        if(r==null)
        return false;
        d= new Date(r[1], --r[2],r[3],r[4],r[5],r[6]);
        if(d.getFullYear()!=r[1] || d.getMonth()!=r[2] || d.getDate()!=r[3] || d.getHours()!=r[4] || d.getMinutes()!=r[5] || d.getSeconds()!=r[6])
        alert('请输入 yyyy-mm-dd hh:mm:ss的日期格式！');
        strDate.select();
        return false;
    }
    return true;
}

//日期校验:标准2005-12-14
function IsSortDateTime(strDate)
{
	var reg1 = /^(\d{1,4})-(\d{1,2})-(\d{1,2})$/;
    var r = strDate.value.trim().match(reg1);
    var d;
    if(r!=null)
    {
        d= new Date(r[1], --r[2],r[3]);
        if(d.getFullYear()!=r[1] || d.getMonth()!=r[2] || d.getDate()!=r[3])
        alert('请输入 yyyy-mm-dd 的日期格式！');
        strDate.select();
        return false;
    }
    else
    {
        alert('请输入 yyyy-mm-dd 的日期格式！'); 
        strDate.select();
        return false;
    }
    return true;
}

/*
返回下拉列表框控件的当前值
*/
function GetOptionValue(option)
{
    var index=option.options.selectedIndex;
    var value=option.options[index].value+'|!'+option.options[index].text;
    var item=value.split('|!');
    return item;  
}

var temptxt='';
/*
文本框获得焦点时取得文本内容
*/
function GetText(txt)
{
    temptxt=txt.value.trim();
}
/*
判断文本框内的值是否被更改
*/
function IsAlter(txt,IsRequired)
{
    if(IsRequired==true)
    { 
        if(txt.value.trim()=='')
        {
            alert('必填项不能为空！');
            return false;
        }
    }  
    if(temptxt==txt.value.trim())
    {
        return false;
    }
    else
    {
        return true;
    }   
}

//是否禁用
function IsDisabled(chbox)
{
    var row=chbox.parentElement.parentElement;
    if(chbox.checked==true)
    {
        row.cells[3].children[1].value=0;
    }
    else
    {
        row.cells[3].children[1].value=1;
    }  
}

//生成一个新行用于带日期控件的
function CreateNewRow(tb,index)
{
	var table=tb;
    //要生成新行的模板行
    var modelRow = table.rows[index];
    //为新行添加列
    var newRow = table.insertRow(table.rows.length);
    var i;
    for(i=0; i<modelRow.cells.length; ++i)
    {
	//新列
        var newcell=newRow.insertCell();
        newcell.innerHTML=modelRow.cells[i].innerHTML;
        newcell.align=modelRow.cells[i].align;
		//newcell.style.display = newrow.cells[i].style.display;
    }
    var d = Math.random();
    var dateTarget = newRow.cells[1].children[0];
    dateTarget.id = "Dateca" + d;
    var datecon = newRow.cells[1].children[1];
    datecon.id = "Dateca" + d;
    Sys.Application.add_init(function() {
    $create(AjaxControlToolkit.CalendarBehavior, {"animated":false,"button":$get(datecon.id),"format":"yyyy-MM-dd","id":datecon.id}, null, null, $get(dateTarget.id));
    });
    Sys.Application.initialize(); 
   return newRow; 
}

//生成一个新行
function AddNewRow(tb,index)
{
	var table=tb;
    //要生成新行的模板行
    var modelRow = table.rows[index];
    //为新行添加列
    var newRow = table.insertRow(table.rows.length);
    for(var i=0; i<modelRow.cells.length; ++i)
    {
	    //新列
        var newcell=newRow.insertCell();
        newcell.innerHTML=modelRow.cells[i].innerHTML;
        newcell.align=modelRow.cells[i].align;
        newcell.event=modelRow.cells[i].event;
    }
   return newRow;
}

//删除选择的行
function DelRow(tb,indexstr)
{
    if(indexstr.trim()!='')
    { 
        var item=indexstr.split('|!');
        for(var i=0; i<item.length; i++)
        {
            tb.deleteRow(item[i]); 
        } 
    }    
}

//获取删除的行的拼串
function GetRowIndexstr(tb,cellindex)
{
    var indexstr='';
    for(var i=tb.rows.length-1; i>1; i--)
    {
        if(tb.rows[i].cells[cellindex].children[0].checked==true)
        { 
            indexstr+='|!'+i;
        }
    }
    if(indexstr.length != 0)
    {
        indexstr=indexstr.substr(2);
    }
   return indexstr;     
}

//删除所有行
function DelAllRow(tb)
{
    if(tb.rows.length>2)
    { 
        for(var i=tb.rows.length-1; i>1; i--)
        {
            tb.deleteRow(i);
        } 
    } 
}

/*
删除行数据并且从数据中删除
*/
function DeleteData(tb,cellindex,childindex,procname)
{
    var item=GetRowIndexstr(tb,cellindex).split('|!');
    var detailstr='';
    for(var i=0;i<item.length;i++)
    {
        var row=tb.rows[item[i]];
        detailstr+='|!'+row.cells[cellindex].children[childindex].value;
    }
    if(detailstr.length!=0)
    {
        procname=procname+"'"+detailstr.substr(2)+"'";
        var str=AjaxExec(procname);
        var item=str.split('|!');
        if(item[0]*1==1)
        {
            DelRow(tb,GetRowIndexstr(tb,cellindex));
            alert(item[1]);
        }
        else
        {
            alert(item[1]);
        }
    }     
}

//校验工序编号是否有效
function CheckNo(txt,tb)
{
    for(var i=2; i<tb.rows.length; i++)
    {
        if(txt.value.trim() == tb.rows[i].cells[1].children[0].value.trim())
        {
            return true;
        }
    }
   txt.select(); 
   return false;  
}

//校验必填项项是否为空
function IsRequired(tb,cellstr)
{
    var item=cellstr.split('|!');
    for(var i=0; i<item.length;i++)
    {
        for(var r=2; r<tb.rows.length; r++)
        {
            if(tb.rows[r].cells[item[i]].children[0].value.trim()=='')
            {
                alert('带*号列为必填项不能为空！');
                tb.rows[r].cells[item[i]].children[0].select(); 
                return false; 
            }
        }
    } 
   return true;  
}

/*
获取表字段信息拼串
GetTablestr(表,'列下标|@控件类型|@控件下标|!列下标|@控件类型|@控件下标')
GetTablestr(Detail,'1|@txt|@0|!2|@txt|@0|!3|@txt|@1')
*/
function GetTablestr(Detail,cellstr)
{
    var result='';
    var item=cellstr.split('|!'); 
    for(var i=2; i<Detail.rows.length;i++)
    {
        var row = Detail.rows[i];
        result+='|!';  
        for(var c=0; c<item.length; c++)
        {
            var cell=item[c].split('|@');
            if(cell[1].toUpperCase()!='TD')
            {
                if(c==0)
                {
                    result+=row.cells[cell[0]].children[cell[2]].value;
                }
                else
                {
                    result+='|@'+row.cells[cell[0]].children[cell[2]].value;
                }     
            }
            else
            {
                if(c==0)
                {
                     result+=row.cells[cell[0]].innerText;
                }
                else
                {
                    result+='|@'+row.cells[cell[0]].innerText;
                }   
            }
        }
    } 
    if(result.length != 0)
    {
        result=result.substr(2);
    }
   return result;   
}

/*
合计表字段值
GetTableCellValue(表,'列下标|@控件类型|@控件下标|!列下标|@控件类型|@控件下标')
GetTableCellValue(Detail,'1|@txt|@0')
*/
function GetTableCellValue(Detail,cellstr)
{
    var result=0.00;
    var item=cellstr.split('|!'); 
    for(var i=2; i<Detail.rows.length;i++)
    {
        var row = Detail.rows[i]; 
        for(var c=0; c<item.length; c++)
        {
            var cell=item[c].split('|@');
            if(cell[1].toUpperCase()!='TD')
            {
                if(IsNumber(row.cells[cell[0]].children[cell[2]])!=false)
                {         
                    result+=row.cells[cell[0]].children[cell[2]].value*1;   
                }    
            }
            else
            {
                if(IsNumber(row.cells[cell[0]].children[cell[2]])!=false)
                {  
                    result+='|@'+row.cells[cell[0]].innerText*1;
                }    
            }
        }
    } 
   return result;   
}

/*
填充表字段
SetTableInfo(表,'列下标|@控件类型|@控件下标|!列下标|@控件类型|@控件下标',拆分的字符串)
SetTableInfo(Detail,'1|@txt|@0|!2|@txt|@0|!3|@txt|@1','a|@b|@c')
*/
function SetTableInfo(tb,cellstr,tbstr)
{
    if(tbstr.trim().length==0)
    return false; 
    var item=tbstr.split('|!');
    var cell=cellstr.split('|!');
    for(var i=0; i<item.length; i++)
    {
        var info=item[i].split('|@');
        var row=AddNewRow(tb,1);
        for(var c=0; c<cell.length; c++)
        {            
            var cells=cell[c].split('|@');
            if(cells[1].toUpperCase()=='TXT')
            {
                row.cells[cells[0]].children[cells[2]].value=info[c]; 
            }
            if(cells[1].toUpperCase()=='TD')
            {
                row.cells[cells[0]].innerText=info[c];
            }
            if(cells[1].toUpperCase()=='BOOL')
            {
                row.cells[cells[0]].children[cells[2]].checked = info[c].ConvertToBool(); 
            }
            if(cells[1].toUpperCase()=='OPTIONTEXT')
            {
                var option=row.cells[cells[0]].children[cells[2]]; 
                option.options[0].text=info[c]; 
            }
            if(cells[1].toUpperCase()=='OPTIONVALUE')
            {
                var option=row.cells[cells[0]].children[cells[2]]; 
                option.options[0].value=info[c]; 
            }
        }
    }  
}


function overRow(){
   var the_obj = event.srcElement;
   if(the_obj.tagName.toLowerCase() == "td")
   {
       the_obj=the_obj.parentElement;
       the_obj.oBgc=the_obj.currentStyle.backgroundColor;            
       the_obj.oFc=the_obj.currentStyle.color;
       the_obj.style.background='red';
       the_obj.style.color='blue';
       the_obj.style.textDecoration='underline';
   }
}

function outRow(){
   var the_obj = event.srcElement;
   if(the_obj.tagName.toLowerCase() == "td")
   {
       the_obj=the_obj.parentElement;
       the_obj.style.backgroundColor=the_obj.oBgc;
       the_obj.style.color=the_obj.oFc;
       the_obj.style.textDecoration='';
   }
}

/*
下拉列表框操作
*/
var optionstr='';
function SelectOption(option)
{
    var index=option.selectedIndex; 
    optionstr=option.options[index].value+'|!'+option.options[index].text;
    return optionstr;    
}


//操作COOKIE


function setCookies(name,value)
{
//　　 var Days = 1; //此 cookie 将被保存 30 天
//　　 var exp　　 = new Date();　　　　 //new Date("December 31, 9998");
//　　 exp.setTime(exp.getTime() + Days*24*60*60*1000);
　　 document.cookie = name + "="+ escape(value);
}

function getCookies(name)
{
　　 var arr = document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)"));
　　 if(arr != null) return unescape(arr[2]); return null;
}

